﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entity;
using Entity.CommonEnums;
using Common.Background.Entity;

namespace Common.Background.Service
{
    /// <summary>
    /// 后台系统管理
    /// </summary>
    public interface ISystemServices : IWebManageMenus, IWebDepartmentsServices, IWebManageRoleservices, IWebManageUserservices
    {
        #region 员工管理
        /// <summary>
        /// 添加员工
        /// </summary>
        /// <param name="webManageUser"></param>
        void WebManageUserAdd(WebManageUsers webManageUser);
        /// <summary>
        /// 修改员工信息
        /// </summary>
        /// <param name="webManageUser"></param>
        void WebManageUserModify(WebManageUsers webManageUser);
        /// <summary>
        /// 批量修改员工信息
        /// </summary>
        /// <param name="webManageUsers"></param>
        void WebManageUserModify(List<WebManageUsers> webManageUsers);
        /// <summary>
        /// 批量删除员工
        /// </summary>
        /// <param name="webManageUsers"></param>
        void WebManageUsersDelete(List<WebManageUsers> webManageUsers);
        /// <summary>
        /// 反回一条记录
        /// </summary>
        /// <param name="webUserId"></param>
        /// <returns></returns>
      //  WebManageUsers GetWebManageUsers(WebManageUsers webManageUser);
        /// <summary>
        /// 返回一个简单实体
        /// </summary>
        /// <param name="userID"></param>
        /// <returns></returns>
        WebManageUsers GetWebManageUsers(int userID);
        /// <summary>
        /// 根据条件返回分页列表
        /// </summary>
        /// <param name="vp"></param>
        /// <param name="pp"></param>
        /// <returns></returns>
        PagedList<WebManageUsers> GetWebManageUsers(VPredication vp, PagingParam pp);
        /// <summary>
        /// 得到一个部门信息
        /// </summary>
        /// <param name="DeptId"></param>
        /// <returns></returns>
      //  WebDepartments GetWebDepartments(WebDepartments webDepartment);
        /// <summary>
        /// 根据条件得到部门列表
        /// </summary>
        /// <param name="vp"></param>
        /// <returns></returns>
        List<WebDepartments> GetWebDepartments(VPredication vp);
        /// <summary>
        /// 根据部门，得到它下面的所有职位
        /// </summary>
        /// <param name="DeptId"></param>
        /// <returns></returns>
        List<WebManageRoles> GetWebManageRoles(WebDepartments webDepartment);
        /// <summary>
        /// 根据员工ID，得到员工下的所有职位列表
        /// </summary>
        /// <param name="WebManageUser"></param>
        /// <returns></returns>
        List<WebManageUser_WebManageRoles> GetWebManageUser_WebManageRoles(WebManageUsers WebManageUser);
        #endregion

        WebManageMenus WebManageMenusTree();

        List<WebManageRoles> GetRolesByStatus(UserOperatorRole status);
    }
}
